
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;

public class PanneauAnimation extends JPanel  {
    private JPanel              pnlAnimation;
    private JPanel              pnlBouton;

    private JButton             btnCalculer;
    private JButton             btnJouerAnimation;
    private JButton             btnAfficherGraphique;

    private Voiture[]           voiture = new Voiture[2];

    private EventManager        eventMan;

    private Fenetre             fenetre;

    public PanneauAnimation(Fenetre fenetre)
    {
        super();

        eventMan = new EventManager();

        pnlAnimation = new JPanel(null);
        pnlAnimation.setPreferredSize(new Dimension(800, 300));

        pnlBouton = new JPanel();
        pnlBouton.setPreferredSize(new Dimension(800, 100));

        btnCalculer = new JButton("Calculer données");
        btnJouerAnimation = new JButton("Jouer animation");
        btnJouerAnimation.setEnabled(false);
        btnAfficherGraphique = new JButton("Initialiser l'animation");
        btnAfficherGraphique.setEnabled(false);

        // Initialisation des composantes
        this.fenetre = fenetre;
        this.setPreferredSize(new Dimension(800, 300));

        pnlBouton.add(btnCalculer);
        pnlBouton.add(btnJouerAnimation);
        pnlBouton.add(btnAfficherGraphique);

        this.add(pnlAnimation);
        this.add(pnlBouton);

        btnCalculer.addActionListener(eventMan);
        btnJouerAnimation.addActionListener(eventMan);
        btnAfficherGraphique.addActionListener(eventMan);

    }   // Constructeur

    public void ajouteVoitures()
    {
        PanneauDonnee donnee = fenetre.getPanneauCadre().getPanneauUtilisateur().getPanneauDonnee();
        PanneauResultat resultat = fenetre.getPanneauCadre().getPanneauUtilisateur().getPanneauResultat();
        PanneauGeneral general = fenetre.getPanneauCadre().getPanneauUtilisateur().getPanneauGeneral();

        for (int i = 0 ; i < 2; i++) {
            voiture[i] = new Voiture(i, pnlAnimation);

            if (Collisions.getInstance().getEstUneDim()) {
                voiture[i].setUneDim(donnee.getVoitureDonnee(i).getVitesseIni(),
                        resultat.getVoitureResultat(i).getVitesseFinale(),
                        general.getVoitureDonnee(i).getMasse());
            } else {
                double vIni[] = { donnee.getVoitureDonnee(i).getVitesseIniX(),
                        donnee.getVoitureDonnee(i).getVitesseIniY() };
                double vFin[] = { resultat.getVoitureResultat(i).getVitesseFinaleX(),
                        resultat.getVoitureResultat(i).getVitesseFinaleY() };
                voiture[i].setDeuxDim(vIni, vFin,
                        general.getVoitureDonnee(i).getMasse());
            }

            VoitureManager.getInstance().addVoiture(voiture[i]);
        }
    }   // ajouteVoitures

    public void joueAnimation()
    {
        VoitureManager.getInstance().start();
    }   // jouAnimation

    public class EventManager implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            if (e.getSource() == btnCalculer) {
                ajouteVoitures();
                joueAnimation();
            } else if (e.getSource() == btnJouerAnimation) {

            } else if (e.getSource() == btnAfficherGraphique) {
                
            }
        }
    }
}
